af69c5
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2016 the original author or authors.
+ * Copyright 2002-2017 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,7 +32,8 @@
import org.springframework.web.context.request.WebRequest;
  */
 public abstract class WebAsyncUtils {
 
-	public static final String WEB_ASYNC_MANAGER_ATTRIBUTE = WebAsyncManager.class.getName() + ".WEB_ASYNC_MANAGER";
+	public static final String WEB_ASYNC_MANAGER_ATTRIBUTE =
+			WebAsyncManager.class.getName() + ".WEB_ASYNC_MANAGER";
 
 
 	/**
@@ -40,7 +41,11 @@
public abstract class WebAsyncUtils {
 	 * found, create and associate it with the request.
 	 */
 	public static WebAsyncManager getAsyncManager(ServletRequest servletRequest) {
-		WebAsyncManager asyncManager = (WebAsyncManager) servletRequest.getAttribute(WEB_ASYNC_MANAGER_ATTRIBUTE);
+		WebAsyncManager asyncManager = null;
+		Object asyncManagerAttr = servletRequest.getAttribute(WEB_ASYNC_MANAGER_ATTRIBUTE);
+		if (asyncManagerAttr instanceof WebAsyncManager) {
+			asyncManager = (WebAsyncManager) asyncManagerAttr;
+		}
 		if (asyncManager == null) {
 			asyncManager = new WebAsyncManager();
 			servletRequest.setAttribute(WEB_ASYNC_MANAGER_ATTRIBUTE, asyncManager);
@@ -54,7 +59,11 @@
public abstract class WebAsyncUtils {
 	 */
 	public static WebAsyncManager getAsyncManager(WebRequest webRequest) {
 		int scope = RequestAttributes.SCOPE_REQUEST;
-		WebAsyncManager asyncManager = (WebAsyncManager) webRequest.getAttribute(WEB_ASYNC_MANAGER_ATTRIBUTE, scope);
+		WebAsyncManager asyncManager = null;
+		Object asyncManagerAttr = webRequest.getAttribute(WEB_ASYNC_MANAGER_ATTRIBUTE, scope);
+		if (asyncManagerAttr instanceof WebAsyncManager) {
+			asyncManager = (WebAsyncManager) asyncManagerAttr;
+		}
 		if (asyncManager == null) {
 			asyncManager = new WebAsyncManager();
 			webRequest.setAttribute(WEB_ASYNC_MANAGER_ATTRIBUTE, asyncManager, scope);
